約 3,727,160 件
https://w.atwiki.jp/m_shige1979/pages/1585.html
Linux 概要 Linuxでのインストール方法 環境 CentOS6.x 64bit 設定 リポジトリを登録 wget http //nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm リポジトリの確認 vim /etc/yum.repos.d/nginx.repo ---- [nginx] name=nginx repo baseurl=http //nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 ---- インストール yum install -y nginx 自動起動設定 # 自動起動、再起動 service nginx start chkconfig nginx on
https://w.atwiki.jp/taropi/pages/14.html
#findの使い方 find [option] [path...] [expression] ○option ・-exec:指定した処理を実行する。 検索結果を{}として渡す。 例1:find . -name \*.pm -exec grep pattern {} \; 「\;」は制御を閉じていることを表している 例2:find . -name "*.pm" | xargs grep -n pattern カレントディレクトリ以下の拡張子pmファイル内に「pattern」が 存在した場合に、そのファイル名と行番号を出力する。 #grepの使い方 grep [option] [file] ○option ・-n:条件に一致した行番号を表示 「n」は「number」と覚えるとよい。 http //www.envinfo.uee.kyoto-u.ac.jp/user/susaki/command/c_grep.html http //hamasyou.com/archives/Engineer-Soul/linuxunixoehackneea.php
https://w.atwiki.jp/linux_kai/pages/2.html
メニュー トップページ + Linuxでkai(準備編) Linuxでkai(準備編) 必要なもの ネットワーク設定 Linuxの設定 ディストロ別設定例 + Linuxでkai(wlan設定編) Linuxでkai(wlan設定編) rt73usb rt2800usb rt3070sta madwifi ndiswrapper + Linuxでkai(kai設定編) Linuxでkai(kai設定編) Kaiインストール Kai設定 Kaiエラー Linuxでkai(実践編) + Linuxでkai(番外編) Linuxでkai(番外編) AdhocToUSB for Linux(x86) 日本語以外の言語設定 動作検証まとめページ あなたのkai環境を投票 相互リンク Mac de kai まとめ@wiki 更新履歴 取得中です。 ここを編集
https://w.atwiki.jp/bambooflow/pages/10.html
Samba導入 ここでは、インストール方法と設定方法について記録しておく。 OS Vine Linux 3.2 インストール Vine3.2には標準でSambaが入っていないので、apt-getしてくる。 ブラウザで設定できるSWATも入れておく。 # apt-get install samba samba-swat そのほか、必要そうなファイルも落とすようにする。 設定 Sambaの設定は、/etc/samba/smb.conf である。 viで直接書き込んで設定する。 /etc/samba/smb.confを以下のように編集する。 [global] dos charset = cp932 unix charset = eucJP-ms display charset = cp932 [fileman] comment = shared file path = /share read only = No 今回は、新しくfilemanというユーザをファイルサーバ用に作成する。 sambaは別にパスワード設定をする必要がある。 # smbpasswd fileman New SMB password Retype new SMB password ここで、/shareというのが共有ディレクトリを作成する。mkdirでディレクトリを作成してアクセス制限の変更を行う。 drwxr-xr-xt 1 fileman fileman 4096 Dec 01 00 00 /share 他のPCから見たときホスト名が表示されるので変更しておく。ここでは、ホスト名をnote-pc.jpとした。 # hostname note-pc.jp samba起動 あとはsambaを起動するだけ、 # /etc/init.d/smb start windowsから見るときは、アドレスとして \\note-pc\fileman と入力してやると見つかる。 SWATの利用 SWATによりsambaの設定をリモートで行うことができる。 まず、/etc/hosts.allowに以下を追加する。 swat localhost 127.0.0.1 192.168.0. mozillaやoperaなどのブラウザを開いてアドレスを http //localhost 901/ とする。 ユーザを聞かれるので、rootで入り適当に設定する。 SWATで設定すると、/etc/samba/smb.confが編集されることになる。 あとがき 今回はセキュリティとかはまったく考えていません。のちのちいろいろな設定を覚えていきたいと思う。
https://w.atwiki.jp/linux_kai/pages/71.html
Total - (Today - Yesterday - ) 最終更新日 2011/04/22 20 13 openSUSE 11.4では3種類のwxGTKライブラリが提供されているが、kaiengineに対応しているのはwxcontainer+Unicodeです 種類 パッケージ名 ファイル名 STL+Unicode libwx...u...stl /usr/lib/wx-???-stl/libwx...u....so.* wxcontainer+Unicode libwx...u...wxcontainer /usr/lib/wx-???-container/libwx...u....so.* wxcontainer+ANSI libwx......wxcontainer /usr/lib/wx-???-container/libwx.......so.* STL+Unicodeの場合、kaiengine実行時に以下のようなエラーが発生する /usr/local/bin/kaiengine relocation error /usr/local/bin/kaiengine symbol _ZTV10wxListBase, version WXU_2.8 not defined in file libwx_baseu-2.8.so.0 with link time reference このページ内容の対象バージョン openSUSE 11.4 i586(32-bit版)で確認しました バージョンが異なる場合、嘘の情報になってしまう可能性があります 1.リポジトリの追加 2.wxGTKライブラリのインストール 3.依存ライブラリの確認 コメント 1.リポジトリの追加 YaSTでリポジトリを追加する [ソフトウェア]->[ソフトウェアリポジトリ]->[追加]->[コミュニティリポジトリの追加] 名前 URL メインリポジトリ(オープンソース) http //download.opensuse.org/distribution/11.4/repo/oss/ 2.wxGTKライブラリのインストール wxcontainer+Unicodeをインストールする > sudo zypper install libwx_baseu-2_8-0-wxcontainer \ libwx_baseu_net-2_8-0-wxcontainer \ libwx_baseu_xml-2_8-0-wxcontainer > sudo zypper install libwx_gtk2u_core-2_8-0-wxcontainer \ libwx_gtk2u_adv-2_8-0-wxcontainer \ libwx_gtk2u_aui-2_8-0-wxcontainer \ libwx_gtk2u_html-2_8-0-wxcontainer \ libwx_gtk2u_qa-2_8-0-wxcontainer \ libwx_gtk2u_richtext-2_8-0-wxcontainer \ libwx_gtk2u_xrc-2_8-0-wxcontainer 3.依存ライブラリの確認 wxcontainer+Unicodeがインストールされるディレクトリは次のパスになるので /usr/lib/wx-2.8-wxcontainer LD_LIBRARY_PATHを設定後、kaiengineの不足ライブラリがないか再確認しておく > export LD_LIBRARY_PATH=/usr/lib/wx-2.8-wxcontainer $LD_LIBRARY_PATH > ldd /usr/local/bin/kaiengine linux-gate.so.1 = (0xffffe000) libwx_gtk2u_richtext-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_richtext-2.8.so.0 (0xb76a1000) libwx_gtk2u_aui-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_aui-2.8.so.0 (0xb763a000) libwx_gtk2u_xrc-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_xrc-2.8.so.0 (0xb75b7000) libwx_gtk2u_qa-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_qa-2.8.so.0 (0xb7598000) libwx_gtk2u_html-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_html-2.8.so.0 (0xb74fa000) libwx_gtk2u_adv-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_adv-2.8.so.0 (0xb743b000) libwx_gtk2u_core-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0 (0xb70d4000) libwx_baseu_xml-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_baseu_xml-2.8.so.0 (0xb70c9000) libwx_baseu_net-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0 (0xb709b000) libwx_baseu-2.8.so.0 = /usr/lib/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0 (0xb6f48000) libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0xb6e3f000) libm.so.6 = /lib/libm.so.6 (0xb6e15000) libgcc_s.so.1 = /lib/libgcc_s.so.1 (0xb6df7000) ...以下省略 以上で、openSUSE 11.4でのwxGTKライブラリのインストールは終わり。 上へ戻る コメント 名前 コメント
https://w.atwiki.jp/linux_kai/pages/54.html
Total - (Today - Yesterday - ) 最終更新日 2010/08/31 22 53 ここではja_JP.SJISロケールの追加方法についてまとめる LANG=ja_JP.SJISと指定してKaiを動作させると、日本語の読み書きができるようになる ディストリビューションによってはOS導入直後からja_JP.SJISがすでに存在するものもある openSUSE日本語環境はja_JP.SJISが存在するがKai日本語用としてはNG、別途ja_JP.CP932などの名称でロケールを追加しよう 旧内容ページ 1.charmapsファイルの確認 2.ja_JP.SJISロケールの追加 コメント 1.charmapsファイルの確認 charmapsファイルが存在しているか確認する $ locale -m | grep WINDOWS-31J WINDOWS-31J locale -mでエラーになる場合、以下のファイルが存在しないことが考えられる ファイルが存在しない場合、パッケージを追加する必要がある $ file /usr/share/i18n/charmaps/WINDOWS-31J.gz openSUSEの場合のパッケージ追加 > sudo zypper install glibc-i18ndata mandrivaの場合のパッケージ追加 $ sudo urpmi glibc-i18ndata puppyの場合 パッケージとして見つけられなかったので、適当な箇所からダウンロードする # wget http //web.mit.edu/~mkgray/afs/bar/usr/share/i18n/charmaps/WINDOWS-31J.gz # cp WINDOWS-31J.gz /usr/share/i18n/charmaps/ 2.ja_JP.SJISロケールの追加 ja_JP.SJISロケールを追加する openSUSE日本語環境はja_JP.SJISが存在するがKai日本語用としてはNG、別途ja_JP.CP932など名称のロケールを追加しよう $ sudo localedef -f WINDOWS-31J -i ja_JP ja_JP.SJIS ja_JP.SJISロケールを確認する $ locale -a | grep ja_JP ... ja_JP.sjis ← 追加されていればOK ja_JP.utf8 ... 以上でja_JP.SJISロケールの追加は終わり。 上へ戻る コメント PuppyLinuxの場合を追加 -- kar (2010-08-28 17 30 34) ちょっと体裁を整えました。 -- あいぽ (2010-08-31 22 53 24) 名前 コメント
https://w.atwiki.jp/lambda/pages/14.html
Debian-Linux カーネル再構築 必要なパッケージをapt-getでインストール autoconf automake binutils gcc gettext kernel-package libncurses libtool linux-kernel-headers make libqt3-mt-dev fakeroot /etc/kernel-pkg.confのmaintainer,emailを修正 カーネルソースをダウンロードする。 apt-cache search linux-source-* linux-source-2.5.24をダウンロードする apt-get install linux-source-2.6.24 mkdir ~/kernel cd ~/kernel mv /usr/src/linux-source-2.6.24.tar.bz2 tar jxvf linux-source-2.6.24.tar.bz2 cd linux-source-2.6.24 make mrproper make xconfig 2.6からカーネルソースの名前がlinux-souceになった。 bz2の解凍オプションはj xconfigを使うにはlibqtが必要。
https://w.atwiki.jp/thiroyoshi/pages/44.html
Linuxのサーバー関連のメモ メーリングリストの設定 誰かに「相談」されてやることに。 あんたのための時間は作らなければありません。 で、調べてみたらソフトがいくつかあると。知らんかった・・・。 メーリングリスト管理ソフト一覧 http //www.kt.rim.or.jp/~atsato/ml/basic/software.html この中でも設定方法の載ってるページ見つけたのでmajordomoにすることにする。 メーリングリストの設定と利用 http //ash.jp/env/srv/mlist.htm Portage Gentooでのパッケージ管理システムのこと。 使い方が結構めんどくて、ここで書くのもめんどいので他ページにお任せ。 以下を参照のこと。 参考URL 使いこなせ!Portage Portageの利用 changeLog 我思うゆえに我あり メールの自動転送 メールサーバーで受け取ったメールを他のアドレスに転送するという設定。 メールサーバーの自分のホームディレクトリに「.forward」というファイルを作成するこのファイルに転送したいアドレスを書き込むだけ 例) 「user○atwiki.com」宛のメールアドレスを「cs611○wiki.com」に転送し、メールサーバーにメールを残す(○は@) cs611@wiki.com \user 上の行は見たとおり転送したいアドレス。他にもあれば複数を改行して並べていけばいい。 下の行はメールサーバーにメールを残すという記述。先頭の「\」(バックスラッシュ)を忘れずに。 これは、「user」だけだと「user」にメールを転送するということになって無限ループしてしまう。 ので、「\」をつけてそれをしないようにする。 もし忘れてもエラーを吐いて止まるらしいが、負荷はかかるし実際どうなるかわからんので気をつけて。 また、使っているソフトや環境で記述方法が若干違う場合があるそうで。 公開鍵設置 サーバーを公開鍵認証にするときに、各ユーザーは公開鍵を自分のホームディレクトリの「.ssh」ディレクトリに配置する必要がある。 このとき、パーミッションをちゃんとしないとクライアントからリモートログインしようとしても「鍵ないで」って言われる。 そこで次のように。 chmod 755 ~/.ssh chmod 600 ~/.ssh/authorized_keys 参考URL SSHが鍵認証されないとき、パーミッションを疑え。 ssh にてパスワードを使用しないでログインする方法 計算サーバーnova(OS=Gentoo)でのmonoのインストール 「mono」とはC#のコンパイラのこと。 これをGentooにインストールを試みたところ、すんなりいかなかったので、メモ。 まず、Gentooでのパッケージのインストールには「emerge」を使用する。そこで、 emerge --search mono で、monoの存在を確認。で、インストール。 emerge mono が、できず。 emerge there are no ebuilds built with USE flags to satisfy "x11-libs/cairo[X]". !!! One of the following packages is required to complete your request - x11-libs/cairo-1.8.6-r1 (Change USE +X) 以上のようなメッセージが出る。これを回避するために、 echo "dev-lang/mono minimal" /etc/portage/package.use を、一旦実行。それから再び、 emerge mono これでインストールが進んだ。 正直、エラーメッセージ回避のために何したかよくわかってないけど、できたからおっけー!? メールサーバーのSSL認証更新 サーバー係ということでメールサーバの認証期限が切れたらしく、それに伴って作業。 ほぼ1日つぶれたよ(精神的に)…。 デフォルトと違うところとかもあったので、わかりくかったな。 まず、認証書などがあるディレクトリを探す。 これはデフォルトだったが、いろいろあってかなり迷った…。 デフォルトは、 /usr/share/ssl/misc/ らしく、このままのところに存在。 まずは、ディレクトリの中身確認。 ここで重要なのはSSLのスクリプトファイル「CA」。 これを実行できるようにしておかなければならない。これのおかげで作業は半自動的。 まあ、細かい説明は以下参照。 http //www.aconus.com/~oyaji/www/certs_linux.htm その他ではdemoCAというディレクトリがあることも確認。 ここからは更新作業。 まずは、期限の切れた証明書の失効処理。 上記ページを参照して、ディレクトリの位置を確認。 実行。 このときに、実行コマンドの最後のファイル名をそろえるほうがいい。 保存ディレクトリは、 /usr/share/ssl/misc/demoCA/crl だが、この中のファイル名は少し変えてあるのでそれにあわせる。 それから、ここにいくつのファイルがあったか・数字がいくつだったかはメモる。(後で必要になる) 更新されてるかは、lessコマンドとかでindex.txt内をチェック。 表示されている行の先頭が「R」になっていれば、失効処理は完了。 次に、新たな証明書の発行を行う。 これは以下のリンクの「認証サーバー証明書の更新」を参照。 http //www.system-act.com/server/openssl.html(ページの中程) これが終わったら、最初のリンクの「◆CA用秘密鍵(cakey.pem)とCA用証明書(cacert.pem)の作成」から「■メール用証明書の作成」までを実行する。 これらで入力すべき項目がいろいろあるが、これは直接ファイルをlessコマンドなどで閲覧すれば見れるのでそれで確認を。 確認するファイルは、すでにある /usr/share/ssl/misc/newcert.pem 次のコマンドを行うときには、おそらくserialがどうのというエラーが出るかもしれない CA -sign これは、各更新時にシリアルナンバーが更新されなければならない、からのようだ。 そこで、それがどこにあるかというと、 /usr/share/ssl/misc/demoCA/serial というファイルである。このserialには数字のみが打ち込まれていてこれを変更することがシリアルナンバーの更新になるようだ。 そこで、思い出さなければならないのは、失効処理のときにあったディレクトリcrlの中にあったファイルの数字だ。 これがシリアルナンバーで揃えられていたようで、初期値は01であり、index.txtの行数に一致する。 ので、結局serialの数字は crl内のファイルの数字+1(=index.txtの行数+1) とすればよい。 このあとに上記の CA -sign を行い、指示にしたがって更新を続ける。 このときindex.txtの最後の行に更新処理が反映され、更新を終了することができる。 その他詳しいことは、内部wikiを参照。 Error Transaction Check Error installing package ??? 通常サーバーの状態はlogwatchによって毎日メールが送られてくるのだが、この程Cronから以下のようなエラーメールが送られて来ていた。 差出人:Cron Deamon 本文 /etc/cron.daily/yum.cron Error Transaction Check Error installing package kernel-smp-2.6.9-89.0.19.EL needs 154KB on the /boot filesystem installing package kernel-devel-2.6.9-89.0.19.EL needs 154KB on the /boot filesystem installing package tzdata-2009u-1.el4 needs 154KB on the /boot filesystem これはLinuxのカーネルをCronによって自動アップデートを行うときに、/bootの空き容量がなくなりアップデートできないことを示すものだそうで。 ってことは、空き容量を作ってやればよくて、それには古いカーネルを消してやればよくて、そんなことしてくれるコマンドがあるらしい。 package-cleanup yum-utilのユーティリティで提供されているコマンド。 これにオプション「--oldkernels」をつけることで古いカーネルイメージの削除が可能。 詳しくは、コマンドマニュアルを参照のこと。 また当たり前だが、yum-utilがない場合にはインストールする必要がある。 今回実際に実行したコマンドは以下。 yum search yum-util yum-utilのインストール状況を確認 man package-cleanup コマンドとオプションの確認 package-cleanup --oldkernels 実行 X Window System 計算サーバーであるGentooにXを導入することに。 GentooでのXはXorgを使うことになっていた。 まずは前処理で/etc/make.confに次を追加。 INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="nvidia" マニュアルにのっとって、 emerge xorg-x11 とする。 次にインストールが終了したら、環境設定をする。 環境設定ファイルを次のコマンドで自動生成 Xorg -configure これで/root/xorg.conf.newというファイルができあがる。 この中身をサーバーに合わせてカスタマイズするのだが、よくわからんかったw とりあえず、無難な感じでカスタマイズ。意味があったかはわからんが。 xorg.conf設定例 設定が終わったら、これをテストする。 X -config /root/xorg.conf.new しかし、ここでエラーが出てきた。 Xはウィンドウシステムということで、ビデオカードの設定が必要ということだ。 前述したが、今回のサーバーではnvidiaのビデオーカードを使用している。 それが、エラーメッセージではバージョンがあわないとかなんとか言われていた。 とりあえず次のようにして、調べる emerge --search nvidia ドライバは入っている。が、その上にnvidia-setteingsというのがある。バージョンがエラーメッセージに表示されていたものと一致している。 一応調べてみたが、入れてみるとよさそうなので入れてみることに。 emerge nvidia-settings これでnvidia関連のエラーは消えた。 他のエラーは出ていた。それはモジュールの"dri"が見つからないといったものだ。 設定ファイルのModules部分の Load "dri" を消しても出てくるので、意味不明‥。今回は放置することに。 (追記) driに関するエラーはバージョンの変更とともにxorg.confの仕様変更があったらしい。 Load "dri" の部分をコメントアウト・削除するのを、以下のようにする Disable "dri" これでエラーは出なくなった。 だが、ここまでで起動しなかったが、一つだけたりないことがあったらしい。 それがsshの設定だった。 /etc/ssh/sshd_configファイルを開き、 X11Forwarding yes とする。 これでXは動くらしい。 最後のsshの設定は自分でやってないからよくわからん。 勉強が足りんらしい。 足りることなんてあんのか? 参考URL http //www.gentoo.org/doc/ja/xorg-config.xml
https://w.atwiki.jp/vmlinuz/
このWIKIは完成することはありません。 ですが、デザインも含めまだまだ試行錯誤の段階です。 レイアウト、URL、ページ名などは後ほど大きく変更する場合があります。 ブックマークされる場合はこちらのページをブックマークしてください。 Linux備忘録とは Server構築のためのノウハウを備忘録的に綴ったもの。 さまざまな人の指南書となれるようにがんばります。 しばらくはこちらからリンクをたどってください。 Linuxについて 全般的なことはこちらのページに目次があります。 コンパイルのこだわり システム管理者にとってサーバ移行はとても労力を伴うものです。 もっとも困難な壁はバージョン差異によるシステム不具合です。 yumやaptは確かに便利なツールですが、OSを移行したり、再構築を実施すると必ずしも同じ環境を用意できるとは限りません。 そこでソースからのインストールを押さえておくことで不測の事態を回避しましょう、というコンセプトです。 とはいえ、ソースからのコンパイルには様々な壁があり、ミドルウェアによってはとてもコンパイルが通るとは思えないソースもあります。 その場合は依存関係や、安定稼働を最重視し、yumやaptでインストールするものとします。
https://w.atwiki.jp/kngwykhm/pages/35.html
*** Solarisのコマンドパス ①/usr/sbin /usr/bin /usr/local/sbin /usr/local/bin /usr/ccs/bin ②/usr/sbin /usr/bin /usr/local/sbin /usr/local/bin /usr/local/ccs/bin ↓環境変数に反映させる PATH=① or ② export PATH *** コマンドの基本(bashシェル) バックグラウンドで処理を実行させる (時間が掛かる処理に付けるとgood) 例) vacuumdb -f school | (パイプ) 前後のコマンドを連携させて実行する 例) cat access_log | more コマンドを順に(バッチ)実行する 例)make make install !! 一つ前に入力したコマンドを実行する bashシェルでは、コマンド履歴を利用して操作を簡略化できます。 !! 直前のコマンド !n 履歴番号がn番のコマンド !-n n回前に実行したコマンド !string 文字列stringで始まる直近のコマンド !?string 文字列stringを含む直近のコマンド TABキー コマンド入力の補完を行う ↑キー コマンド履歴 history コマンド コマンド履歴一覧を表示 ~ ユーザのホームディレクトリのこと 例) cd ~ Ctrl+d ログアウトする Ctrl+z 現在実行中の処理をバックグラウンドで実行させる 実際にはbg [番号]でバックグラウンド実行になる 例) tar xxx.tar /home/hoge ここでCtrl+z [1]+ Stopped bg 1 ここで指定する番号は、Stoppedで左側表示されるモノを指定する。 逆にフォアグラウンドに戻りたい場合、fg 番号で戻ることができる。 bash [shバッチファイルなど] あらたにシェルを起動して処理を行う bash --debug等のオプションで詳細な戻り値などを確認可能 *** ファイルの中身を表示する cat [ファイル名] 一画面毎に区切って表示 more [ファイル名] パイプで利用可能 例) cat httpd.conf | more ファイル頭を表示 head [ファイル名] -n [行数] ファイル末尾を表示 (ログに使える) tail [ファイル名] -n [行数] -fs[秒数] 一定秒数後に読み直す *** ユーザ追加 useradd -m -d [ホームディレクトリ] -g [グループID or グループ名] -s [シェル] -k [テンプレートファイルの場所] -c [コメント] -p [MD5で暗号化したパスワード] [ユーザID] -m をつけるとホームディレクトリを作成してくれる。 Linuxでの例) useradd -g apache -m -d /soffice/es01 es01 useradd -g 1 -m -d /var/xxxxx -s /nologin xxxxx Solarisでの例) ※Solarisでは 下記のようにしないと、 Linuxと同じようにユーザディレクトリが作成されません。 groupadd postgres useradd -g postgres -m -d /export/home/postgres -s /usr/bin/bash -k /etc/skel postgres useradd -g other -m -d /export/home5/demo14 -s /usr/bin/bash -k /etc/skel demo14 useradd -g other -d /home/sadmin_demo -s /usr/bin/bash -k /etc/skel sadmin_demo *** パスワードを変更したい passwd [ユーザID] *** パスワードを変更したい(問い合わせ無しで) # root 専用 passwd --stdin [ユーザID] txt txtには2つ同じパスワードを改行で区切って作成する。 sambaのsmbpasswd も大体同じことをしてやると応用可能。 *** ユーザ変更 usermod -m -d [ホームディレクトリ] -g [グループ] -s [シェル] -c [コメント] -p [MD5で暗号化したパスワード] [ユーザID] SGIDとして追加させたい場合 usermod -G [グループ] [ユーザID] *** ユーザ変更 usermod -m -d [ホームディレクトリ] -g [グループ] -s [シェル] -c [コメント] *** ユーザ削除 userdel -r [ユーザ名] -r:ユーザディレクトリも含めて削除 *** ディスク使用量 指定ディレクトリの使用容量(使用ブロックでのサイズ) du -h -s [ディレクトリ] -h:容量に単位を付ける(Linux) -s:使用容量のみを出す *** ファイルの合計サイズを出す(Windowsと同じ感じで出る) find [ディレクトリ] -type f -printf "%s\n" |awk { sum += $1; }; END { print sum } *** ディスクの空き容量 df -h -h:容量に単位を付ける(Linux) *** ディレクトリの作成 mkdir [ディレクトリ名] -p ディレクトリ作成先の途中パスが存在しない場合作成する *** ファイルコピー cp -p [コピー元] [コピー先] -v: 詳細(Linux) -p: 権限を保持 -i: 上書き確認 -r: ディレクトリを含める -f: 強制実行 ディレクトリも含めるコピー cp -pr *** ファイル移動 mv -p [コピー元] [コピー先] -v: 詳細(Linux) -p: 権限を保持 -i: 確認 -r: ディレクトリを含める -f: 強制実行 ディレクトリも含めるコピー mv -pr [コピー元] [コピー先] *** ファイル削除 rm [オプション] [ディレクトリ or ファイル名] -v: 詳細(Linux) -i: 削除の確認を行う -r: ディレクトリを含める -f: 強制的に削除 ディレクトリも含めての削除 (※間違っても ルートディレクトリでやらないこと。全データ消えます) rm -fr [ディレクトリ or ファイル名] *** オーナー変更 chown [オプション] [ユーザID] [グループID] [ファイル or ディレクトリ] -v 詳細(Linux) -R ディレクトリとディレクトリ内のファイルを処理対象に含める *** 権限変更 chmod [オプション] [権限] [ファイル or ディレクトリ] -v 詳細(Linux) -R ディレクトリとディレクトリ内のファイルを処理対象に含める 000 全ユーザ読み書き不能 755 全ユーザに実行権限 600 ログインユーザのみに 書込可能 644 ログインユーザ書込、他ユーザは読み込みのみ *** リンク ln -s [リンク対象(実体)] [リンクファイル名] -s:シンボリックリンク(付けないとハードリンク) *** ファイル一覧 ls -lah [ディレクトリ or ファイル名] -l:詳細リストで表示 -a:隠しファイルを表示する -h:ファイルサイズ単位をわかりやすく表示する(Linux) -F:ディレクトリには「/」を付けて表示する -t:更新日付の新しい順に表示 -S ファイルサイズ順で表示 -R カレントディレクトリ配下すべて 応用) ★ディレクトリのみを確認したい (1階層のみ) ls -F /home |grep / ★ディレクトリのみを確認したい (配下のディレクトリすべて) ls -R /home/itou |grep | sed s/ // *** ディレクトリ構造を取得したい treeというコマンドを手動で入れる。 ftp //mama.indstate.edu/linux/tree/ tar xfz tree-x.x.x.tgz cd tree-* make make install 使用例) tree /home/hoge ディレクトリのみ表示 tree -d /home/hoge *** プロセス確認 ps -ef | grep "対象プロセス名" 例) ps -ef | grep httpd *** CPU利用率を確認 top(Linuxのみ?) プロセス情報を監視する Solarisは prstat とうつ *** ファイル検索 (便利) find [ディレクトリパス] -name "キーワード" find [ディレクトリパス] -atime 1 -print 1日前にアクセスされたファイルの検索 find [ディレクトリパス] -ctime 2 -print 2日前に更新されたファイルの検索 find [ディレクトリパス] -size -1k -print ファイルサイズが1k以下のファイル検索 find [ディレクトリパス] -size +1c -print ファイルサイズが1byte以上のファイル *** 複数条件での検索 (Linux) 例) cat access.log | grep -e "127.0.0.1" -e "172.16.20.62" *** su コマンドで一時的にユーザを替えて実行 rootでログイン su - su - ユーザ名 su - ユーザ名 -c "コマンド名" *** sudo コマンドで一時的にユーザを替えて実行 sudo -u [ユーザ名] [コマンド] 例) sudo -u nobody ls -la /tmp sudoの設定を変更するには、visudo で書き換える ※RHEL5/CentOSでsudoを実行するとエラーになる場合、visudoで requiretty をコメントアウトし保存する *** su コマンドでrootになるユーザを制限する ※予め、PAMがインストール済であること(rpm -qa | grep pam) vi /etc/pam.d/su #↓以下の行を追加 auth required /lib/security/pam_wheel.so group=wheel ※wheelグループに属していないユーザは su 出来なくなる。 adminをwheelグループに属させる場合、 vi /etc/group 変更前:wheel * 0 root 変更後:wheel * 0 root,admin とする。 最後に、設定変更 vi /etc/login.defs #↓以下の行を追加 SU_WHEEL_ONLY yes *** chroot 一時的にルートディレクトリを変更する。 例) chroot /mnt/sysimage *** 日付 確認 date 時を設定する date -s 17 30 日を設定する date -s MM/DD/YYYY or YYYY/MM/DD ntpを利用して日付を合わせる ntpdate -s [NTPサーバ] 日付を記憶させる(ハードウエアクロックと同期させる) clock -w or hwclock -w *** tar 解凍(Linux) tar xvfz [圧縮ファイル.gz] tar xvjf [圧縮ファイル.bz2] 解凍(Solaris) gunzip [圧縮ファイルtar.gz] tar xvf [tarファイル] GZIP圧縮(Linux) tar cvfz [tarファイル名] [圧縮対象ディレクトリorファイル名] GZIP圧縮(Solaris) tar cvf [tarファイル名] [tarでまとめる対象ディレクトリorファイル名] gzip [tarファイル名] 確認 tar t [tarファイル名] ※応用 1.tar 展開(-x)or表示(-t) (1)特定のファイルのみ展開(それ以外は削除) tar -zxf hoge.tgz;mv hoge/fuga.file .;rm -fr hoge (2)特定のディレクトリー下全て(それ以外は削除) tar -zxf hoge.tgz;mv hoge/fuga.dir .;rm -fr hoge (3)ディレクトリーのみ全て tar -zxf hoge.tgz;rm -f hoge/* (4)特定のディレクトリーの直下のみ tar -zxf hoge.tgz;mv hoge/fuga.dir .;rm -fr hoge;rm -fr fuga.dir/*/*;rmdir fuga.dir/* */ *** lha lha a [lzhファイル名] [圧縮対象ファイル] lha m [lzhファイル] [圧縮対象ファイル] lzhファイルに圧縮後、元ファイルを削除 lha xw=[解凍先パス] [lzhファイル] Windows上で作成したlzhを解凍するときに ファイル名の大文字小文字を区別させて解凍する場合 lha xg [lzhファイル] lha xf [lzhファイル] 上書きの確認をしないで解凍 *** FTP ftp [接続先IP or ホスト名] ユーザ、パスワードの順に入力 利用可能なコマンド(proftpd) nlist ファイル一覧取得 bin バイナリモード asc アスキーモード passiv パッシブモードの切り替え cd サーバ側のディレクトリ変更 lcd ローカル側のディレクトリ変更 ls -la ファイル一覧 !ls -la ローカル側のファイル一覧 pwd カレントディレクトリの表示 delete ファイル削除 mdelete ファイル一括削除 get ダウンロード mget 一括ダウンロード put アップロード mput 一括アップロード help コマンドの一覧表示 by 終了 bye 終了 quit 終了 *** lftp (2GB以上のファイルを扱えない場合のFTP) lftp open サーバ名 *** sftp (SSH暗号接続で ファイル転送する) tcpポート はSSHの22番を使用する? sftp [オプション] [ユーザID@ホスト名 or IPアドレス] オプション -C :データ圧縮して通信を行う 接続後のコマンド Available commands cd path Change remote directory to path lcd path Change local directory to path chgrp grp path Change group of file path to grp chmod mode path Change permissions of file path to mode chown own path Change owner of file path to own help Display this help text get remote-path [local-path] Download file lls [ls-options [path]] Display local directory listing ln oldpath newpath Symlink remote file lmkdir path Create local directory lpwd Print local working directory ls [path] Display remote directory listing lumask umask Set local umask to umask mkdir path Create remote directory progress Toggle display of progress meter put local-path [remote-path] Upload file pwd Display remote working directory exit Quit sftp quit Quit sftp rename oldpath newpath Rename remote file rmdir path Remove remote directory rm path Delete remote file symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute command in local shell ! Escape to local shell ? Synonym for help ※ascii や binモードがない。 *** ネットワーク設定(Linux) すべてのネットワーク接続を確認 ifconfig -a アダプタを起動/停止 ifconfig [アダプタ名] [up/down] Linux専用 netconfig 上記設定後, service network restart # 100Full固定で オートネゴをキャンセルさせる ethtool -s eth0 speed 100 duplex full autoneg off *** ネットワーク設定(Solaris) すべてのネットワーク接続を確認 ifconfig -a アダプタを起動/停止 ifconfig [アダプタ名] [up/down] ・Solarisの場合 vi /etc/hosts 192.168.1.31 gis2 vi /etc/resolv.conf nameserver domain serach を指定 vi /etc/nodename ホスト名 vi /etc/hostname.hme0 ホスト名 vi /etc/defaultrouter 192.168.1.253 (ゲートウェイ) vi /etc/netmasks 192.168.1.0 255.255.255.0 例 ifconfig hme0 down (※telnet経由でコレをやるとつながらなくなります) ifconfig hme0 192.168.1.31 netmask 255.255.255.0 broadcast 192.168.1.255 ifconfig hme0 up *** ネットワークの設定(Linux) Red Hat Linux系の場合次のファイルに書き込まれる。 vi /etc/hosts vi /etc/resolv.conf vi /etc/sysconfig/network ホスト名・デフォルトゲートウェイなど vi /etc/sysconfig/network-scripts/ifcfg-eth0 IP設定 vi /etc/sysconfig/network-scripts/route-eth0 ルーティング設定(RH9) vi /etc/sysconfig/static-routes ルーティング設定(RH7) *** IPエイリアスの設定(IPアドレスを複数持ちたい場合) ifconfig eth0 [番号] [IPアドレス] netmask [ネットマスク] broadcast [ブロードキャスト] エイリアスを無効にする ifconfig eth0 [番号] 0 エラーは出るが消える。 *** ルーティング (route ルート) 静的ルート設定方法(Red Hat Linux 7まで) vi /etc/sysconfig/static-routes eth0 net 192.168.99.0/24 gw 192.168.xx.253 eth0 net 192.168.199.0/24 gw 192.168.xx.253 /etc/sysconfig/static-routes eth0 静的ルート設定方法(Red Hat Linux 8以降) vi /etc/sysconfig/network-scripts/route-eth0 192.168.99.0/24 via 192.168.xxx.253 192.168.199.0/24 via 192.168.xxx.253 service network reload ルーティング情報の追加 Linux route [add/del] [-net ] [gw] [metric] [netmask] [device] route add -net 192.168.99.0 gw 192.168.xxx.253 metric 1 netmask 255.255.255.0 eth0 route add -net 172.16.21.0 gw 172.16.20.253 netmask 255.255.255.0 eth0 Solaris route add 192.168.100.88 -netmask 255.255.255.0 192.168.100.193 ルーティング情報の削除 route del -net 192.168.90.0 netmask 255.255.255.0 route del -net 192.168.99.0 netmask 255.255.255.0 gw 192.168.90.253 (同じネットワークでルートが複数できてしまった場合、その個数分削除することで消せる) デフォルトゲートウェイ追加 route add default gw 192.168.1.254 デフォルトゲートウェイ削除 route del default gw 192.168.1.254 デフォルトゲートウェイ・ホスト名など (ファイルに書いておく場合) vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=kaigi3 ←サーバのホスト名(FQDN) GATEWAY=10.86.41.254 GATEWAYDEV=eth1 ←複数のNICがある場合に、デフォルトゲートウエイとするデバイスを指定 FORWARD_IPV4=no ←パケット中継(ルータ)とする場合のみyes ファイル編集後、 service network restart ルーティング確認方法 route netstat -nr *** 生存確認 (ping ピン/ピング) ping -s [IP or ホスト名] *** ホスト名 hostname hostname [ホスト名] *** 使用されているポート確認 (netstat ネットスタット) netstat -an *** ルーティング(経路)の確認 netstat -rn route *** ホスト名逆引き確認 nslookup [DNSサーバIP or ホスト名(省略可)] [IP or ホスト名] MXを調べる場合は set type=MX xxxxx.ne.jp *** dig *** サービス(Linux) setup (対話的に設定可能) サービス追加 chkconfig --add [サービス名] サービス削除 chkconfig --del [サービス名] サービス一覧 chkconfig --list 起動を有効化 chkconfig [サービス名] on 起動を無効化 chkconfig [サービス名] off initレベルを指定する場合 chkconfig --level=35 [サービス] on/off サービスの起動 service [サービス名] start サービスの停止 service [サービス名] stop サービスの再起動 service [サービス名] restart サービスの状態 service [サービス名] status ※service の代わりに /etc/init.d/ と置き換えても実行できる *** システム終了・再起動 ※Solarisでいきなり再起動させるとディスクにデータを 書き込まないままになり危険らしいです。 おまじない程度にsyncコマンドを数回発行させてから終了・再起動させること。 sync キャッシュにあるデータをディスクに保存 poweroff 終了(Linux) shutdown -h now 終了(Linux) halt 終了 init 0 終了 shutdown -y -i0 -g0 終了(Solaris) shutdown -y -i5 -g0 電源断(Solaris) shutdown -r now 再起動(Linux) shutdown -y -i6 -g0 再起動(Solaris) reboot 再起動 init 6 再起動 fastboot チェックを簡易化して終了し再起動 *** Samba ファイル共有 Sambaの接続状況を確認 smbstatus Sambaのユーザ追加 smbpasswd -a [ユーザ名] Sambaのユーザ削除 smbpasswd -x [ユーザ名] sambaの動作確認コマンド これで共有しているディレクトリの中身が見えてくればOK smbclient -U [ユーザ名]%[パスワード] //IPorサーバホスト名/共有フォルダ名 例) smbclient -U hoge%xxxx //win2003/test ※samba/windows上の共有ディレクトリをLinuxからマウントしてアクセスする場合 [username=,password,codepage=,....] #smbfs が使用できる場合 mount -t smbfs -o username=admin,password=xxxxxx //192.168.2.150/backup /mnt/backup #cifs が使用できる場合 mount -t cifs -o username=admin,password=xxxxxx //192.168.2.150/backup /mnt/backup *** コマンドパスの確認 (which ウィッチ) which [コマンド名] 例) which sudo /usr/local/bin/sudo *** カレントディレクトリ pwd 現在居るディレクトリを表示 cd ホームディレクトリに移動する cd [ディレクトリ] 指定ディレクトリに移動する *** カレントユーザー (whoami フーアムアイ) whoami *** テキストエディタ (vi ブイアイ) vi [ファイル名] vim [ファイル名] コマンド ESC 入力・検索モードから抜ける i 入力モードに入る x 1文字削除 d 1行削除 o 1行挿入 a カーソル挿入 c 行クリア b カーソル1行上へ移動 e カーソル1行下へ移動 [移動数]h ← [移動数]j ↓ [移動数]k ↑ [移動数]l → v Visualモードに入る(領域選択) g ファイル先頭に移動する Shift+g ファイル末尾に移動する ^ 行頭へ移動 $ 行末へ移動 % 対応する括弧へ移動 yy 行コピー dd 行削除(切り取り) p 貼り付け u 元に戻す(アンドゥ) Ctrl+r やり直し(リドゥ) ! コマンドを強制する Ctrl+u ↑半ページスクロール Ctrl+d ↓半ページスクロール Ctrl+f ↓1ページスクロール [行数] 指定行にジャンプ w 上書き保存 w ファイル名 ファイル名を指定して保存 q viを終了する 文字列検索 /検索文字列/ n 次の検索ヒット対象へジャンプ 文字列置換 %s/置換前文字列/置換後の文字列/ でエンター (※ .や/などの特殊文字を含む場合\.や\/とし、\マークでエスケープする) *** メール mail メールを読む コマンド h メール一覧を表示する n 次のメールを表示 p 現在のメールを読む d 現在のメールを削除 q メールを保存して終了 ? ヘルプ n番目のメールを読む mail [n番] 読み終わったメールはユーザ・ディレクトリ ~/mbox に保存される メール送信 mail [送信先メールアドレス(複数可能)] Subject [題名][Enter] [メール本文][Enter] .でメール本文終了 Cc [CCするメールアドレス] mail -s 件名 -c CCアドレス -b BCCアドレス メールを読む mail -f mailboxのファイル名 mail -u ユーザ名 *** メールスプール /var/spool/mail 配下にユーザ毎にできるファイルのことです。 中身はそのまま生データが入っているので読むことができる。 *** cronの設定 (クーロン) crontab -l 一覧 crontab -e 編集 分・時・日・月・曜 コマンド 引数 例:毎日午前1時0分に実行する) 0 1 * * * /usr/local/bin/php /home/juen/web/cron/pc_notice.php crontab のエディタをviにする(Solaris) EDITOR=vi *** 環境変数の登録 bash export [A]=[B] 例) export PATH=/bin /usr/bin /usr/local/bin tcsh/csh setenv [A] [B] 現在登録されている環境変数の確認は env *** ファイルの暗号化 ①gpg(共通鍵暗号化) 暗号化: gpg -c [ファイル名] ※パスフレーズを2回入力 暗号化されると、ファイル名の後ろに.gpgという拡張子が付く 複合化: gpg [暗号化済みファイル(*.gpg)] ※暗号化した際のパスフレーズを入力 ※暗号化すると、若干圧縮がかかるためファイルサイズが減少する。 ◆apache でパスワードを付けてWebページに認証させたい htpasswd -c パスワードファイル 認証ユーザ名 認証させたいページのファイルがあるディレクトリに.htaccessファイルを作成し、下記のようにする # パスワード認証 AuthUserFile /etc/.htpasswd AuthGroupFile /dev/null AuthName "Please enter username and password" AuthType Basic require valid-user *** ファイルのダウンロード (wget ダブルゲット) wget [URL] wget http //www.yahoo.co.jp/ Proxyを経由しなければならない場合、 /etc/wgetrcを編集して proxyの部分を経由するproxyに書き換える か、環境変数に入れる export http_proxy="http //hoge.ne.jp 8080/" カレントディレクトリにファイルがダウンロードされる --no-proxy とするとproxyを経由しない *** RPM RedHat用のパッケージ管理 オプション -e 削除 -i インストール -F インストール済みであれば更新 -U アップデート -h インストール・アップデート中に進捗バーを表示する -v 処理内容を詳細に表示する --nodeps 依存関係を無視する :困ったときにのみ使うこと --force 処理を強制する --test 処理のテストのみ行い、実際の処理は行わない --quiet 処理中に何も表示しない --initdb RPM用のデータベースを初期化 --rebuilddb RPM用のデータベースを作り直す --version RPMコマンドのバージョンを表示 インストール済みパッケージの確認 rpm -qa | grep [パッケージ名] 例) rpm -qa | grep "apache" パッケージの削除 rpm -e [パッケージ名] パッケージのインストール rpm -ivh [*.rpm] パッケージの更新 rpm -Uvh [*.rpm] 該当するパッケージがインストールされていれば更新を行う rpm -Fvh [*.rpm] ソースパッケージからRPMを作成する場合 rpmbuild --rebuild --target=i686 [パッケージ] RPMを作成する場合 rpm -ba [SPECファイル] *** apt (あぷと) aptの設定 /etc/apt/apt.conf ソースリストはここを編集/ etc/apt/source.list リスト更新 apt-get update インストール apt-get install [パッケージ名] アップグレード apt-get upgrade ディストリ全体をアップグレード apt-get dist-upgrade HTTPプロキシを経由する場合はapt.confに設定を書くか、 http_proxy環境変数に入れる。 http_proxy="http //hoge.ne.jp 8080" export http_proxy ***yum (やむ) *** patch当て (patch パッチ) 対象と1階層下のフォルダ階層でパッチを実行 patch -p1 [filename.patch] 対象と同じフォルダ階層でパッチを実行 patch -p0 [filename.patch] *** 差分を取る テキストファイル1と2の差分を取る diff ファイル1 ファイル2 2ソースファイルの差分からパッチファイルを作成するには diff -c ファイル1 ファイル2 hoge.patch *** PostgreSQL (ポスグレ/ポストグレス) PostgreSQLの起動 pg_ctl -o "オプション" start -o "オプション"は省略可能 PostgreSQLの終了 pg_ctl stop PostgreSQLの再起動 pg_ctl restart どうしても終了しないとき pg_ctl -m immediate stop DB一覧 psql -h [サーバのホスト or IP(ローカルの場合省略可)] -p [ポート番号(省略可)] -l データベースのダンプ(エクスポート)作成 pg_dump -U [DB接続ユーザ] [DB名] [ダンプファイル名] または pg_dump -U [DB接続ユーザ] [DB名] -f [ダンプファイル名] テーブルのみをダンプする (INSERT形式で) pg_dump -U [DB接続ユーザ] -D -t [テーブル名] [DB名] [ダンプファイル名] または pg_dump -U [DB接続ユーザ] -D -t [テーブル名] [DB名] -f [ダンプファイル名] Ex) pg_dump -U school01 -D -t base_sco_mast school base_sco_mast.sql すべてのデータベースをダンプする pg_dumpall -c -U [DB接続ユーザ] [ダンプファイル名] ※-c を付けると、復元する際に重複キーを作成させないように一旦DELETEするSQLを作成する。 インポート または SQL実行 psql -e -U [DB接続ユーザ] [DB名] [SQLファイル名] SQLを実行させる psql -U [DB接続ユーザ] [DB名] [sqlファイル名] or psql -U [DB接続ユーザ] [DB名] -c "sql文" SQLの内容をファイルに書き出す(応用) psql -U [DB接続ユーザ] [DB名] -c "sql文" [ファイル名] CSV形式のデータをインポートする(応用) psql -U [DB接続ユーザ] [DB名] -c "COPY [テーブル名] FROM CSVファイル名 " CSV形式でデータをエクスポートする psql -U [DB接続ユーザ] [DB名] -c "\COPY enq_area_mast TO /home/postgres/itou/enq_area_mast.csv USING DELIMITERS , " DB最適化 vacuumdb -f -z -f -z を付けない場合、簡易vacuum すべてのDB最適化(時間がかかる) vacuumdb -a -f -z *** MySQL (マイエスキューエル) mysql -h [ホスト名] -p[パスワード] *** Telnet (telnet テルネット) telnet [接続先IP or ホスト名] [ポート番号] HTTPの確認 telnet localhost 80 head / get / SMTP (メール送信) telnet localhost 25 HELO ホスト名 MAIL FROM 送信元のアドレスを入力 RCPT TO 宛先のアドレス DATA 354 Enter mail, end with "." on a line by itself From 送信元アドレス Subjet メールタイトル メッセージ . QUIT POP3 (メール受信) telnet localhost 110 USER xxxxx PASS yyyyy STAT LIST QUIT *** telnet時のログインメッセージ Linux vi /etc/issue.net 好きなメッセージを入力 Solaris ↓無い場合は作成する vi /etc/default/telnetd ↓入力する BANNER="メッセージ" *** ログイン後のメッセージ /etc/motd を編集する。 *** bashログインしたときのみ表示 /etc/bashrc か、 ~/.bashrcの末尾に echo "メッセージ" を加える *** ポートスキャン(Linux) nmap [ホスト or IP] *** TCPデータを覗く tcpdump 詳しくはweb検索して調べて。 *** プロセス管理 特定のプロセスを再起動させる ps コマンドでプロセス番号を確認し、 kill -HUP [プロセス番号] 応用例) kill -HUP `cat /var/log/squid/squid.pid` プロセスの終了 kill [プロセス番号] [プロセス番号]... プロセスの強制終了(どうしても終了しない場合) kill -KILL [プロセス番号] *** OSのバージョンを確認 cat /etc/issue ※ただのテキストファイルなので書き換えられていると違うことがある。 *** カーネルのバージョンを確認 cat /proc/version または uname -a *** CPU情報を確認する方法 cat /proc/cpuinfo *** サーバのメモリ情報を確認する方法 Linux cat /proc/meminfo Solaris prtconf | grep Mem *** 現在ログイン中のユーザを調査 who もしくは w *** ログイン履歴を調査 Solaris last [ユーザID] *** パーティションの管理 Linux fdisk [デバイス名] 例) fdisk /dev/hda fdiskに入ったときのコマンド m ヘルプ p パーティション一覧 d パーティション削除 n パーティション作成 t パーティションの種類変更 a パーティションのアクティブ化 w 設定をディスクに書き込んで終了 q 設定を保存しないで終了 ※[注意]fdiskはハードディスクの中身を変更するので 間違って設定した場合、データが読めなくなります。 *** パーティションのフォーマット mkfs -t [フォーマット] [デバイス] *** ディスクのチェック Windowsで言うところの、スキャンディスクのことです。 システム起動時のディスクチェックでエラーが出たときに行います。 シングルユーザモードで下記のコマンドを行います fsck [オプション] [デバイス] オプション -p 有無を言わさず自動修復 -n チェックしても実際の修復はしない -c 不良ブロックのチェック -f ファイルシステムの状態が正常でもチェックを強制する -v 動作の詳細な内容を表示する 例) fsck -p /dev/hda1 fsck -p /dev/hda2 *** ディスクのマウント mount -o [オプション,..] -t [ファイルシステム] [デバイスパス] [マウント先のパス] ※予め、マウント先のディレクトリを作成しておくこと。 例) mount -o noatime /dev/hda /home フロッピーをマウント mount -t vfat /dev/fd0 /mnt/floppy USBメモリをマウント(SCSIデバイスとして認識される) mount -t vfat /dev/sda1 /mnt/floppy CDROMをマウント mount -t iso9660 /dev/cdrom /mnt/cdrom 現在のマウント状態を確認(Solaris) mount -p 現在のマウント状態を確認(Linux) mount マウントの解除 umount [デバイス] or [マウント先] CDROMの取り出し eject [デバイス(省略可)] *** ドライブのコピー ※コピー元とコピー先のドライブの容量は同じであること! ドライブA→ドライブB dd if=/dev/hda of=/dev/hdb conv=sync,noerror *** パーティションのコピー ※予めコピー元のドライブとコピー先のドライブのパーティションを同じにしておく。 ドライブAのパーティション1→ドライブBのパーティション1 dd if=/dev/hda1 of=/dev/hdb1 conv=sync,noerror *** Linux 起動ディスクの作成 ※フロッピーはvfat で予めフォーマットしておく mkbootdisk `uname -r` *** bash 設定 .bashrc # set aliases alias ls= ls -Fh --color=auto alias df= df -h .bashrcを書き換えたら source ~/.bashrc で設定反映 Solarisでbash使う場合 /etc/bashrc を作成 # /etc/bashrc を作成する # vi /etc/bashrc # User Prompt PS1="\[\e[37;0m\][\u@\h]\\$\[\e[0m\] " USER=`/usr/xpg4/bin/id -un` export USER PROMPT_COMMAND= echo -ne "\033]0;${USER}@${HOSTNAME} ${PWD}\007" # このファイルを作成した後に、ユーザーのホームディレクトリに # .bash_profile をviで以下の内容を追加する # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # もう一つ.bashrc をviで以下の内容を追加する # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi *** XWindowを自動起動させないようにする(Linux) vi /etc/inittab level「5」⇒「3」に変更してOS再起動する *** 空きメモリ free -m -m MB単位で表示 -s [秒数]単位で表示を更新 *** ログ確認 起動プロセスのログを確認 dmesg もしくは less /var/log/messages *** SCSIカードのドライバが自動的にロードされないとき (/etc/modules.conf(kernel2.4)/etc/modprobe.conf(kernel2.6)にカード情報がかかれている にも関わらず、ドライバが組み込まれない場合) #手動でモジュールを組み込んでみる。 /sbin/insmod [モジュール名] /sbin/modprobe [モジュール名] 例) /sbin/modprobe aic7xxx scsi2 Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36 aic7880 Ultra Wide Channel A, SCSI Id=7, 16/253 SCBs blk queue f71af818, I/O limit 4095Mb (mask 0xffffffff) (scsi2 A 0) 20.000MB/s transfers (20.000MHz, offset 15) Vendor I-O DATA Model HDR-S160 Rev 112S Type Direct-Access ANSI SCSI revision 02 blk queue f71af618, I/O limit 4095Mb (mask 0xffffffff) Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0 SCSI device sdc 312500160 512-byte hdwr sectors (160000 MB) sdc unknown partition table #正常に認識されれば、起動時に認識できるようにRAMDISKを作成し直す。 /sbin/mkinitrd -v -f /boot/initrd-[カーネルバージョン].img [カーネルバージョン] ※あとは、fdisk ⇒ mkfs ⇒ mount ⇒使用可能 FTP のバッチ化は可能か? FTP や Telnet といった対話型プログラムを自動化したい場合は、expect を使うとよい。 expect は、スクリプトに従って、他の対話型プログラムに "話しかける" プログラムであり、 プログラムから何を期待され、正しい応答が何であるべきかをスクリプトで記述することができる。 シェルスクリプトとは違って、プログラムとユーザの対話が必要なプログラムを実行するのに便利である。 以下は、とある Anonymous サイトから、ある特定のファイルを受信する例。 #!/usr/bin/expect set anonymous-ftp.site.hoge set email mymail-address@mydomain.hoge spawn ftp $site expect "*ame* " { send "anonymous\n" } expect "assword " { send "$email\n" } expect "* " { send "cd pub/RFC\n" } expect "* " { send "ascii\n" } expect "* " { send "hash\n" } expect "* " { send "get rfc-index.txt\n" } expect "* " { send "quit\n" } send_user "script end\n" close exit 0 *** Windows XPの場合 Telnet Microsoft Telnet set ?……セット・コマンドのヘルプ bsasdel BackSpace を Del として送信します crlf ニューライン モード - リターン キーで CR および LF を送信します delasbs Del を BackSpace として送信します escape x telnet クライアント プロンプトで x をエスケープ文字として 入力します localecho ローカル エコーを使用します logfile x x は現在のクライアント ログ ファイルです logging ログを有効にします mode x x には console または stream が入ります ntlm NTLM 認証を使用します term x (x には ansi, vt100, vt52, または vtnt が入ります) codeset x (x には Shift JIS, Japanese EUC, JIS Kanji, JIS Kanji(78), DEC Kanji または NEC Kanji が入ります) Microsoft Telnet set localecho……ローカル・エコーをオンにする ローカル エコー オン……有効になった Microsoft Telnet unset localecho……ローカル・エコーをオフにする ローカル エコー オフ ……無効になった ◆telnet 接続のタイムアウトを無効にする サーバ側で設定する。 unset autologout *** iptablesによるポートフォワード(VNCなどで活用) iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.86.41.9 --dport 5800 -j REDIRECT --to 5800 iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.86.41.9 --dport 5900 -j REDIRECT --to 5900 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5800 -j DNAT --to-destination 10.86.41.9 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5900 -j DNAT --to-destination 10.86.41.9 ↓リダイレクト iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.24.99 --dport 80 -j REDIRECT --to 80 ↓フォワード iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.24.99 # ssh でパスワードなし認証させる(イントラ内ならまだOKだが公開サーバでは超危険!) ①接続元(クライアント)での設定 ssh-keygen -t rsa 何も入力せずにエンターキーを三回押す ②接続先(サーバ)のssh設定を変更する chkconfig sshd on vi /etc/ssh/sshd_config #-------------------------------- ここから #rootを許可する場合は PermitRootLogin yes # RSA 公開鍵認証を有効にする RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # ノーパスワード認証させる PasswordAuthentication yes PermitEmptyPasswords yes #-------------------------------- ここまで #終わったらsshd を再起動 service sshd restart ③接続元のrsa共有鍵を接続先サーバへ転送する cat .ssh/id_rsa.pub | ssh root@fsv "mkdir -p .ssh chmod 700 .ssh cat .ssh/authorized_keys chmod 600 .ssh/authorized_keys" ④接続元からsshで接続先のサーバへログインできるか確認 ssh user@servername で認証なしで入れるか確認する *** postfix メールキューを削除 http //city.hokkai.or.jp/~hachikun/PostfixQueueDelete.html ◆xinet制御のタイムアウト設定?(Web上のサイトから引用) xinetd.confの設定 /etc/xinetd.confには、各サービスに共通の設定をします。 defaults { instances = 60 log_type = SYSLOG authpriv log_on_success = HOST PID log_on_failure = HOST RECORD } includedir /etc/xinetd.d 基本的には、/etc/xinetd.confの設定はデフォルトのままで構いませんが、 DoS対策として、サービスプロセスへのアクセスタイムアウト秒数である instanceをより小さな値に設定することもできます。 この値を変更すると、 xinetdから起動される全てのサービスプロセスのアクセスタイムアウト秒数 が変更されます。 ただし、あまり小さな値に設定すると、 提供すべきサービスもネットワーク の負荷などが原因で正常に接続できなくなる可能性が出てきますので、 ネットワークの負荷とDoSの境界をどこに設定するか等を考えてから変更して 下さい。 ◆PostgreSQLの接続状態を確認する。 SELECT COUNT(*) FROM pg_stat_activity; *** RAMディスクのようにメモリを使う。 mount -t tmpfs -o size=10m tmpfs /dev/shm mount -t tmpfs -o size=10m /dev/shm /hoge *** プロセスの優先度を変更したい renice [優先度] [PID] -19 が最優先 20 が最低。 *** リソース制限をかける ulimitを使います。 -a 制限を表示 -m メモリ -v 仮想メモリ -u 1人のユーザが利用可能なプロセス数 -t cpu時間 ◆テキストファイルの特定の文字列を一括置換したい perl -p -i.bak -e s/nobody/apache/g */ini/dbconst.ini 上記では、dbconst.iniのnobodyという文字列を全てapacheに置換し、 変更前のファイルはファイル名に.bakを付けてバックアップされる。 ◆WindowsからLinuxへファイル転送したいんだけど? Linux側でFTPが使用できなくて接続できないです... この場合にファイル転送したいんだけど...どうしたらいい? SSHが使用できれば、WinSCPと言うソフトをWindows側にインストールすれば ファイルの転送を行うことが出来ます。 ◆SSHでrootでログインしたいんだけど? RedHatES 4,5では標準でrootでログインすることが可能です。 TurboやVineでは禁止されているようですので、 次のファイルをrootユーザでviで書き換える vi /etc/ssh/sshd_config 下記の項目を追加する PermitRootLogin yes 書き込んで終了したら service sshd restart で、sshdを再起動させる。 以上でrootでログイン可能になる。これはセキュリティ的にはマズイので 正式運用時は止めること。